import type { App } from "vue";
/** 导入常用的navie组件 */
import {
    create,
    NButton,
    NCard,
    NCheckbox,
    NLayout,
    NLayoutContent,
    NLayoutFooter,
    NLayoutHeader,
    NConfigProvider,
    NDataTable,
    NDescriptions,
    NDescriptionsItem,
    NDialogProvider,
    NDivider,
    NDrawer,
    NDrawerContent,
    NDropdown,
    NEmpty,
    NForm,
    NFormItem,
    NGradientText,
    NGrid,
    NGridItem,
    NInput,
    NInputGroup,
    NInputNumber,
    NList,
    NListItem,
    NLoadingBarProvider,
    NModal,
    NMenu,
    NMessageProvider,
    NNotificationProvider,
    NPopover,
    NScrollbar,
    NSelect,
    NSpace,
    NStatistic,
    NSwitch,
    NSpin,
    NTabs,
    NTabPane,
    NTag,
    NThing,
    NTimeline,
    NTimelineItem,
    NTooltip,
} from 'naive-ui'

/** 根据上方导入的进行创建 */
export default function setupNaiveUI(app: App) {
    const commonNaive = create({
        components: [
            NButton,
            NCard,
            NCheckbox,
            NLayout,
            NLayoutContent,
            NLayoutFooter,
            NLayoutHeader,
            NConfigProvider,
            NDataTable,
            NDescriptions,
            NDescriptionsItem,
            NDialogProvider,
            NDivider,
            NDrawer,
            NDrawerContent,
            NDropdown,
            NEmpty,
            NForm,
            NFormItem,
            NGradientText,
            NGrid,
            NGridItem,
            NInput,
            NInputGroup,
            NInputNumber,
            NList,
            NListItem,
            NLoadingBarProvider,
            NModal,
            NMenu,
            NMessageProvider,
            NNotificationProvider,
            NPopover,
            NScrollbar,
            NSelect,
            NSpace,
            NStatistic,
            NSwitch,
            NSpin,
            NTabs,
            NTabPane,
            NTag,
            NThing,
            NTimeline,
            NTimelineItem,
            NTooltip,
        ],
    });
    app.use(commonNaive);
}